#include <type_traits>

#include <logger.h>

// #define COMPILE_ERROR

template<typename T, bool Val>
class Defaulter {
public:
#ifdef COMPILE_ERROR
    static_assert(Val, "not support this type.");
#endif

    T Get() { return {}; }
};

int main()
{
    Defaulter<bool, true> boolDefaulter;
    VALUE_LOGGER(boolDefaulter.Get());

    Defaulter<int, false> intDefaulter;
    VALUE_LOGGER(intDefaulter.Get());
}
